package com.xiangge.demo;

import java.util.Arrays;

/*
    面向对象：
        思想： 编程思想     结合编程体会

        面向过程：
            描述：将需求按照步骤划分为每一步,然后由程序员一步步完成
            执行者：  程序员自己                  指挥者：  程序员自己

        面向对象：
            描述：将需求交给对象完成，程序员只需要调用对象中的成员即可
            执行者： 对象                         指挥者： 程序员
        面向函数：
            描述： 不需要找对象，直接找到功能即可         典型的： lambda表达式

        举例说明：
            -- 洗衣服：
                 面向过程：
                     步骤： 脱衣服 , 放在洗衣盆 ,  倒入水喝洗衣液 , 揉一揉 , 搓一搓 , 拧一拧 , 晒一晒
                     执行者：  自己                          指挥者： 自己

                 面向对象：
                     步骤： 脱衣服 , 丢给女朋友
                     执行者： 女朋友                            指挥者： 自己

            -- 买电脑：
                 面向过程：
                     步骤： 坐车去江汉路 ,  逛电脑店 ,  挑选配置 , 谈价格 , 打包坐车回家
                     执行者： 自己                               指挥者： 自己
                 面向对象：
                     步骤：打开手机 , 选配置 ,下单 ,等着收货
                     执行者： 手机                                指挥者：自己

            面向对象的三大特点：
                1. 将复杂的事情简单化, 将简单的事情变得更加简单   --- 对象自己
                2. 懒人思想
                3. 将我们由执行者变成指挥者

            面向对象的三大特性： 封装,继承,多态

            说明：
                服务员点单
                万物皆对象
                对象调方法

             面试题： 请说说您对面向对象的理解？
                 面试官,您好 ,我所有了解的面向对象是基于一本书：Java变编程思想, 从这本书中我理解到面向对象的三个特点 :
                        1. 将复杂的事情简单化, 将简单的事情变得更加简单   --- 对象自己
                        2. 懒人思想
                        3. 将我们由执行者变成指挥者
                 例如： 您面试我就是一种面向对象的思想，由于您比较忙有更重要的工作,又因为公司有开发需求需要完成,您需要面试一个具有开发能力的人帮您完成,例如：我

 */
public class OOPDemo1 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        // 面向过程：
        System.out.println(beautifulPrint(arr));//[1, 2, 3, 4, 5]

        // 面向对象：
        System.out.println(Arrays.toString(arr));
    }

    public static String beautifulPrint(int[] arr){
        String str = "[";
        for (int i = 0; i < arr.length; i++) {
            if( i == arr.length - 1){
                str = str + arr[i] +"]";
            }
            else{
                str = str + arr[i] +", ";
            }
        }
        return str;
    }
}
